function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",0.5)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}
        
function masc_soNumeros(v){
    return v.replace(/\D/g,"")
}

function masc_data(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o segundo e o terceiro dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o quinto e o sexto dígito
    return v
}

function masc_hora(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o segundo e o terceiro dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o quinto e o sexto dígito
    return v;
}

function masc_dataHora(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o segundo e o terceiro dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca "/" entre o quinto e o sexto dígito
    v=v.replace(/(\d{6})(\d)/,"$1:$2")    //Coloca ":" entre o décimo terceiro e o décimo quarto dígito
    v=v.replace(/(\d{4})(\d)/,"$1 $2")    //Coloca " " entre o décimo e o décimo primeiro dígito
    return v
}
        
function masc_telefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function masc_cpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function masc_cep(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
} 

function verifica_data(v) { 

    validar = false 
    
    if (v.value == ""){
        validar = true
    } else {
        
        dia = v.toString().substring(0, 2)
        mes = v.toString().substring(4, 6) 
        ano = v.toString().substring(7)

        // verifica o dia valido para cada mes 
        if ((dia < 1)||(dia < 1 || dia > 30) && (  mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || dia > 31) { 
            validar = true
        } 

        // verifica se o mes e valido 
        if (mes < 01 || mes > 12 ) { 
            validar = true
        } 

        // verifica se e ano bissexto 
        if (mes == 2 && ( dia < 1 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
            validar = true
        }  
    }
    
    if (validar) { 
        alert("Data inválida!")
        v.focus()
    }
}
           
function verifica_dataHora (v) { 
    validar = false

    if (v.value == ""){
        validar = true
    } else {
        
        dia = v.toString().substring(0, 2)
        mes = v.toString().substring(4, 6)
        ano = v.toString().substring(7)

        // verifica o dia valido para cada mes 
        if ((dia < 1)||(dia < 1 || dia > 30) && (  mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || dia > 31) { 
            validar = true
        } 

        // verifica se o mes e valido 
        if (mes < 01 || mes > 12 ) { 
            validar = true 
        } 

        // verifica se e ano bissexto 
        if (mes == 2 && ( dia < 1 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
            validar = true
        }  
    }
    
    alert("Dia => " + dia)
    alert("Mes => " + mes)
    alert("Ano => " + ano)
    
    if (validar) { 
        alert("Data inválida!")
        v.focus()
    } else {
        verifica_hora(v.toString().substring(12))
    }
} 
        
function verifica_hora(v){ 
    
    valida = false
    
    if (v.value == "") { 
        valida = true
    } else {
        hrs = v.toString().substring(0, 3)
        min = v.toString().substring(3)
               
        alert('hrs => '+ hrs)
        alert('min => '+ min)
               
        // verifica data e hora 
        if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){ 
            valida = true
        }                         
    }    

    if (valida) { 
        alert("Hora inválida!")
        v.focus()
    } 
}
